#ifndef CHASSIS_H
#define CHASSIS_H

#include <string>

class Chassis {
private:
    std::string id;              // 底盘编号
    std::string model;           // 型号
    double wheelbase;            // 轴距
    double track;                // 轮距
    double minGroundClearance;   // 最小离地间隙
    double minTurningRadius;     // 最小转弯半径
    std::string driveMode;       // 驱动形式
    double maxRange;             // 最大行程
    std::string tireModel;       // 轮胎型号
    double tireSize;             // 轮胎尺寸

public:
    Chassis();
    Chassis(const std::string& id, const std::string& model, double wheelbase,
            double track, double minGroundClearance, double minTurningRadius,
            const std::string& driveMode, double maxRange,
            const std::string& tireModel, double tireSize);

    // Getters
    std::string getId() const;
    std::string getModel() const;
    double getWheelbase() const;
    double getTrack() const;
    double getMinGroundClearance() const;
    double getMinTurningRadius() const;
    std::string getDriveMode() const;
    double getMaxRange() const;
    std::string getTireModel() const;
    double getTireSize() const;

    // Setters
    void setId(const std::string& id);
    void setModel(const std::string& model);
    void setWheelbase(double wheelbase);
    void setTrack(double track);
    void setMinGroundClearance(double minGroundClearance);
    void setMinTurningRadius(double minTurningRadius);
    void setDriveMode(const std::string& driveMode);
    void setMaxRange(double maxRange);
    void setTireModel(const std::string& tireModel);
    void setTireSize(double tireSize);

    void display() const;
};

#endif // CHASSIS_H